<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // function a(){}
  // console.log( a );
  // console.dir( a );
  // console.log( a.prototype );
  // console.log(typeof a.prototype );


  function A(){}
  const a = new A();

  function B(){}
  const b = new B();

  // 一个对象的隐式原型指向了创建了该对象的构造函数的显式原型

  // a的隐式原型指向了A的显式原型
  console.log( a.__proto__ === A.prototype );
  // b的隐式原型指向了B的显式原型
  console.log( b.__proto__ === B.prototype );
  
  console.log( a.__proto__ === B.prototype );
  console.log( b.__proto__ === A.prototype );



  // 一个构造函数的显式原型被自身创建出来的对象的隐式原型指向

  // A的显式原型被a的隐式原型指向
  console.log( A.prototype === a.__proto__ );
  // B的显式原型被b的隐式原型指向
  console.log( B.prototype === b.__proto__ );
  
  console.log( B.prototype === a.__proto__ );
  console.log( A.prototype === b.__proto__ );



  
</script>
</html>